package com.dianjing.dianjing.service;

import com.dianjing.dianjing.dto.input.DemandInput;
import com.dianjing.dianjing.dto.input.PublishInput;
import com.dianjing.dianjing.entity.Demand;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dianjing.dianjing.util.DataUtils;

import java.util.List;

/**
 * <p>
 * 需求表 服务类
 * </p>
 *
 * @author LBG
 * @since 2022-11-09
 */
public interface DemandService extends IService<Demand> {

    /**
     * 发布需求
     * @param input
     */
    DataUtils publishDemand(PublishInput input);

    /**
     * 查看所有需求
     * @return
     */
    DataUtils showAllDemand(DemandInput input);

    /**
     * 根据id查询需求详情
     * @param id
     * @return
     */
    DataUtils selectDemandById(Integer id);

    /**
     * 需求响应
     * @param demandId
     * @param painterId
     * @return
     */
    DataUtils demandRespond(Long demandId, Long painterId);

    /**
     * 拒绝需求
     * @param id
     * @return
     */
    DataUtils refuseDemand(Long id);

    List<Demand> getUserWaitAccept(Long userId);

    Boolean cancelDemand(Long userId, Integer demandId);

    Boolean painterRefuse(Long userId, Integer demandId);

    Boolean painterReceive(Long userId, Long demandId);

    List<Demand> getWaitResponse(Integer type);
}
